package com.uzai.console.service.feign;

import com.uzai.console.common.UzaiRespVo;
import com.uzai.console.dto.feign.dyorder.*;
import com.uzai.console.service.feign.impl.DyOrderFeignFallbackFactory;
import com.uzai.console.vo.dy.feign.DyOrderBindVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * @Auther: jianghan
 * @Date: 2021/11/24 16:22
 * @Description:
 */
@Component
@FeignClient(value = "uzai-order-server", fallbackFactory = DyOrderFeignFallbackFactory.class)
public interface DyOrderFeignService {

    /**
     * 抖音订单确认收货
     * @author jitwxs
     * @date 2021/11/29 10:25
     * @param dyOrderSettledDto
     * @return com.uzai.console.common.UzaiRespVo<java.lang.Boolean>
     */
    @PostMapping("/settled/dy/order")
    UzaiRespVo<Object> settled(@RequestBody DyOrderSettledDto dyOrderSettledDto);

    /**
     * 抖音订单解冻
     * @author jitwxs
     * @date 2021/11/29 10:26
     * @param dyOrderUnfreezeDto
     * @return com.uzai.console.common.UzaiRespVo<java.lang.Boolean>
     */
    @PostMapping("/unfreeze/dy/sync")
    UzaiRespVo<Object> unfreeze(@RequestBody DyOrderUnfreezeDto dyOrderUnfreezeDto);

    /**
     * 抖音订单解绑用户
     * @author jitwxs
     * @date 2021/11/29 10:26
     * @param dyOrderUnbindDto
     * @return com.uzai.console.common.UzaiRespVo<java.lang.Boolean>
     */
    @PostMapping("/unbind/dy/sync")
    UzaiRespVo<Object> unbind(@RequestBody DyOrderUnbindDto dyOrderUnbindDto);

    /**
     * 抖音订单绑定用户
     * @author jitwxs
     * @date 2021/11/29 10:26
     * @param dyOrderBindDto
     * @return com.uzai.console.common.UzaiRespVo<java.lang.Boolean>
     */
    @PostMapping("/bind/dy/async")
    UzaiRespVo<Object> bind(@RequestBody DyOrderBindDto dyOrderBindDto);

    /**
     * 抖音订单(共享联盟推老板)拉取接口
     * @author jitwxs
     * @date 2021/11/29 10:26
     * @param dyOrderPullDto
     * @return com.uzai.console.common.UzaiRespVo<java.lang.Boolean>
     */
    @PostMapping("/pull/tlbdy/orderByToken")
    UzaiRespVo<Boolean> pull(@RequestBody DyOrderPullDto dyOrderPullDto);

    /**
     * 抖音订单(自营联盟)拉取接口
     * @author jitwxs
     * @date 2021/11/29 10:26
     * @param dyOrderPrvPullDto
     * @return com.uzai.console.common.UzaiRespVo<java.lang.Boolean>
     */
    @PostMapping("/dy/order/download/prv")
    UzaiRespVo<Boolean> prvPull(@RequestBody DyOrderPrvPullDto dyOrderPrvPullDto);
}
